Skip to content

Conversation

@kristjanvalur
Copy link
Collaborator

Add support for macos, building darwin libraries for intel and arm cpus.

- Add platform detection for macOS in platform.h using __APPLE__
- Create separate macos.yml workflow for testing both x86_64 and ARM64
- Use darwin_x86_64 and darwin_arm64 ABI names for macOS libraries
- Reuse existing AAPCS64/System V assembly implementations
- Add conditional macros for Mach-O vs ELF directives
- macOS requires leading underscore for C symbols (_stackman_switch)
- Replace .type, .size, .section directives with macros that expand appropriately
- Fixes build errors on macOS runners
- macOS assembler has different CFI semantics causing errors
- Add CFI_* macros that expand to nothing on macOS
- CFI directives are for debugging/unwinding, not critical for functionality
- Fixes 'invalid CFI advance_loc expression' errors
- Clean up stale temp files before creating new ones
- Prevents 'File exists' error from mktemp on macOS
- macOS doesn't support -static flag (no crt0.o available)
- Detect Darwin and skip -static flag
- Tests will link dynamically on macOS, statically on Linux
- Fix .cfi_def_cfa_register directive on macOS
- Properly define macro to expand to nothing on Apple platforms
Brings in v1.0.0 and v1.0.1 changes:
- Windows ARM32 removal
- GitHub Releases workflow
- Library commit deprecation
- CHANGELOG.md
- Updated copilot instructions
- Added build-macos job with darwin_x86_64 and darwin_arm64
- Included macOS artifacts in release archives
- Now builds 9 platforms total (4 Linux, 2 macOS, 3 Windows)
- Updated version to 1.0.1
- Added macOS platforms (darwin_x86_64, darwin_arm64) to supported platforms list
- Reorganized platform list by OS for clarity
- Updated platform counts (9 ABIs total)
@kristjanvalur kristjanvalur merged commit 1d94125 into stackless-dev:master Nov 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant